Storage information in a high performance computing environment presents certain challenges and requires data storage architecture and data migration procedures permitting a high level of efficiency and fault tolerance for the data migrating between the high performance computers and long-term (or permanent) data storage.
Data storage architectures handling high performance computations have been developed, including those described in U.S. Patent Application Publication No. 2014/0108723, filed as Ser. No. 14/056,265, directed to “Reducing Metadata in a Write-Anywhere Storage Sub-System”; U.S. Patent Application Publication #2014/0108473, filed as Ser. No. 14/050,156, directed to “Maintaining Order and Fault-Tolerance in a Distributed Hash Table System”; U.S. Patent Application Publication #2014/0108863, filed a Ser. No. 14/035,913, describing “Handling Failed Transaction Peers in a Distributed Hash Table”; U.S. Patent Application Publication #2014/0108707, filed as Ser. No. 14/028,292, related to “Data Storage Architecture and System for High Performance Computing”; and patent application Ser. No. 14/045,170, directed to “Method and System for Data Transfer between Compute Clusters and File System”, and others.
All these architectures use distributed data storage and a specific addressing system capable of pointing a request (when a file access is requested) to a particular location (or locations) within a group of distributed memories.
Multiple storage controllers are typically included in data storage architectures to control operation of the data storage devices. The storage controllers usually are logically inter-connected to share the information on data items residency.
In order to prevent data loss as to data corruption in the event of a storage device failure, the data storage systems require intercommunication between the storage controllers configured with redundant partners and continuous arbitration for “write” I/O operations to prevent the storage controllers from placing multiple shards (fragments) of the same RAID stripe on the same storage device. The intercommunication between storage controllers disadvantageously adds latency and overhead to any operation which would modify the data in the storage devices.
In a data storage system including N storage controllers, due to the permanent arbitration on the data placement between the storage controller nodes, the number of messages passed for a single request/acknowledge operation may be as large as 2N. The intercommunication between the storage controllers thus undesirably prevents from scaling up beyond two storage controllers.
It would be highly desirable to reduce (or eliminate) the intercommunication and continuous arbitration for “write” I/O operations between the storage controllers, while assuring a high level of data integrity prevention from data corruption and data loss, as well as providing the I/O operations (requiring modifications to data) to have low latency and to require reduced overhead.